This invention relates generally to digital telephone networks, and in particular to techniques for transporting voice information over packet networks such as Internet Protocol (IP) networks.
The Internet and other packet switched networks are increasingly used as a transmission medium for voice telephone calls. Internet telephony software and services now provide low cost, or even free, telephone calls anywhere in the world. With simple equipment at the subscriber end, a virtual connection can be established between two callers through a system of interconnected packet based networks that may include the Internet, intranets or other digital networks. These systems are thus emerging as a viable alternative to legacy circuit switch networks.
In order to facilitate communication over the internet, various industry and international standard bodies have established different functional requirements and rules that govern the transmission of data packets that carry voice information. Implementation of these common rules, known as “protocols,” is necessary to allow equipment provided by different manufacturers to interoperate.
One typical device within a packet network is called a gateway. Gateways allow dissimilar computer networks that might use different protocols to connect with one another. A gateway provides, in effect, an interface that translates data between the different communication protocols that may be used. One type of gateway is an Internet Protocol (IP) telephony gateway. A typical IP telephony gateway can handle multiple simultaneous telephone calls originating from standard telephone connections within the Public Switched Telephone Network (PSTN) and route them over the internet using the Internet Protocol (IP).
In a typical Voice Over Internet Protocol (VoIP) connection, a caller located at an “originating” point places a telephone call to a terminating point using a standard telephone or computer modem. The call is then routed first to an originating internet telephony gateway, typically through an exchange which is local to the originating point. The originating gateway then establishes one or more IP connections, or “sessions” with a remote “terminating” gateway that services the telephone equipment at the terminating end of the call. The terminating gateway then completes the circuit by connecting to the destination telephone via a local circuit switched connection. The connections are duplexed, i.e., signals flow both from the originating point to the terminating point, and from the terminating point to the originating point.
In order to communicate voice audio signals over a digital network, the gateways modify the audio signals received from and transmitted to the parties' telephones. These audio signals are typically encoded using Pulse Code Modulation (PCM) according to various voice coding standards. At the originating end, equipment is used to sample and encode an analog voice signal. The encoded bits are then arranged into packets for transmission over the IP network that provides the virtual connection. At the terminating end, the terminating gateway disassembles the packets, decodes the sample bits, and converts them back to an analog voice signal once again.
One transport protocol often used for carrying VoIP packets between gateways is the Internet Engineering Task Force (IETF) Real-Time Transport Protocol (RTP), as defined in Request For Comment (RFC) on 1889. RFC 1889 has now been placed into the International Telecommunication Union (ITU) standard H225.0.
While the IP telephony infrastructure has become somewhat popular, users have come to expect to have to tolerate occasional delays and sometimes inferior quality of service. There are a number of factors contributing to this. In a VoIP connection that uses the RTP transport protocol, each end typically encodes the voice samples with a scheme such as used by G.711, G.723 or G.729 type codecs. These codecs are known to be quite efficient. For example, the G.729 codecs can often result in voice payloads of 10 bytes or less, per IP packet, per connection (assuming a 10 millisecond (ms) sampling period).
However, standard VoIP/UDP/RTP packet formats require several headers. These include a 20 byte IP header, an 8 byte User Datagram Protocol (UDP) header, and an 12 byte RTP header. Thus, the typical VoIP packet using the most efficient codecs may have 40 bytes of overhead but only 10 bytes of payload!
It is known that certain transport networks, such as Asynchronous Transfer Mode (ATM) networks, provide subcell multiplexing. In particular, some ATM switches support a so-called ATM Adaptation Layer 2 (AAL2) mode that allows multiple voice channels to be carried over a single ATM virtual circuit. AAL2 requires an additional byte of overhead for each ATM cell and additional 3 bytes of overhead for each voice packet. AAL2 is designed to efficiently handle real-time traffic such as voice. However, conventional wisdom is that other data traffic payloads implemented over AAL2 are sometimes inefficient.
There is a “common part” of AAL2 (AAL2-CP) which has been proposed to adapt the capabilities of ATM to the traffic requirements of low and variable bit rate applications. AAL2-CP thus suggests multiplexing several low bandwidth AAL2 connections into a single ATM virtual channel connection.
Some have proposed a scheme known as Compressed Real Time Transport Protocol (CRTP) which allows the compression of headers within a single VoIP packet. This scheme uses a CRTP header with length of 4 bytes for each payload. Special purpose state update headers permit the end-to-end connections to be properly maintained.
However, this approach requires routers to support PPP or any other data link layer protocols to handle the CRTP packets. This can pose a difficulty when VoIP traffic is to be carried over public networks such as the Internet, and where the configuration of intervening routers cannot be known in advance.